import urllib.parse as up
import socket


def unquoteUrlCode(srcCode: str) -> str:
    """
    URL解码，将 % 开头的编码解码为原字符

    :param srcCode:
    :return:
    """
    return up.unquote(srcCode)


def quoteUrlCode(srcCode: str) -> str:
    """
    URL编码，将一些特殊的字符编码成 % 开头的编码

    :param srcCode:
    :return:
    """
    return up.quote(srcCode)


def get_WLAN_ipv4_address() -> str:
    """
    获取本机在 WLAN 下的 ipv4 地址，不在 WLAN 环境下则返回 '127.0.0.1'

    :return:
    """
    skt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # socket.SOCK_DGRAM代表的是socket使用UDP协议进行通讯
        # 除此之外socket.SOCK_STREAM使用的是TCP协议进行通讯
        skt.connect(("8.8.8.8", 999))  # 谷歌公共DNS 地址，端口任意填
        ip = skt.getsockname()[0]
        skt.close()
        return ip
    except:
        skt.close()
        return '127.0.0.1'
